1 Preparations

1.0.1 Packages

Load packages

library(raster)
library(dplyr)
library(tibble)
library(sf)
library(rgdal)
library(readr)
library(readxl)
library(ggplot2)
library(lubridate)
library(magrittr)
library(tidyr)

1.0.2 Functions

source(file = "R/functions/gsfplot.R")
source(file = "R/functions/grplot.R") # fugly
source(file = "R/functions/read.vba.R")

2 Prepare variables

2.1 Geographic data

2.1.1 Landscape

Set up base landscape layer

ch_rst <- raster(x = "data/grids/eco_v12.img")
ch_rst
class       : RasterLayer 
dimensions  : 1384, 1362, 1885008  (nrow, ncol, ncell)
resolution  : 100, 100  (x, y)
extent      : 317058.8, 453258.8, 5769547, 5907947  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs 
data source : /home/landis/rfst/data/grids/eco_v12.img 
names       : eco_v12 
values      : 7, 132  (min, max)
ch_proj <- crs(ch_rst)
plot(ch_rst)

2.1.2 Boundaries

rfa <- read_sf("data/shapefiles/RFA/")
rfa
Simple feature collection with 81 features and 7 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: 140.9617 ymin: -39.1587 xmax: 149.9763 ymax: -33.98135
epsg (SRID):    NA
proj4string:    +proj=longlat +ellps=GRS80 +no_defs
gsfplot(rfa)

ch_rfa <- rfa[rfa$NAME== "CENTRAL HIGHLANDS",] %>%
  st_transform(crs = ch_proj)
ch_rfa
Simple feature collection with 1 feature and 7 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: 318074.3 ymin: 5770575 xmax: 452175.7 ymax: 5906852
epsg (SRID):    NA
proj4string:    +proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs
gsfplot(ch_rfa)

ch_mask <- rasterize(ch_rfa, ch_rst, field = 1)
plot(ch_mask)

victoria <- read_sf("data/shapefiles/vicstatepolygon/") %>%
  st_transform(crs = ch_proj)

2.2 Occurrence data

2.2.1 GG Occurrence data

Read in data

gg_ari <- read_excel(path = "data/tabular/BoA_SB_Combined_VBA_upload_v4.xls") %>%
  dplyr::select(-starts_with("leave")) %>%
  rename("lon" = `X-coordinate (easting or longitude)`, "lat" = `Y-coordinate (northing or latitude)`) %>%
   fill(lon, lat, .direction = "down") %>%
  filter(`Taxon Name` == "Misc Target taxa not found") %>%
  select(lon, lat) %>%
  mutate(PA = 0) %>%
  st_as_sf(coords = c("lon", "lat"), crs = st_crs(28355)) %>%
  st_transform(crs = st_crs(ch_rst))

-
/
                                                                                                                  
New names:
* `leave blank` -> `leave blank...2`
* `leave blank` -> `leave blank...3`
* `leave blank` -> `leave blank...6`
* `leave blank` -> `leave blank...7`
* `leave blank` -> `leave blank...25`
gg_ari
Simple feature collection with 51 features and 1 field
geometry type:  POINT
dimension:      XY
bbox:           xmin: 333214 ymin: 5779763 xmax: 451285 ymax: 5937215
epsg (SRID):    28355
proj4string:    +proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
gg_vba <- read.vba("data/tabular/vba_gg_all_20190509.csv") %>%
  dplyr::rename("date" = `Survey Start Date`, "lon" = `Longitude GDA94`, "lat" = `Latitude GDA94`, "count" = `Total Count`) %>%
  select(date, lon, lat, count) %>%
  mutate(date = dmy(date)) %>%
  filter(date > ymd("2009-03-01")) %>%
  mutate(PA = ifelse(count != 0 | is.na(count), 1, 0)) %>%
  select(lon, lat, PA) %>%
  st_as_sf(coords = c("lon", "lat"), crs = st_crs(4283)) %>%
  st_transform(crs = st_crs(ch_rst))
gg_vba
Simple feature collection with 3086 features and 1 field
geometry type:  POINT
dimension:      XY
bbox:           xmin: 248825.6 ymin: 5725915 xmax: 742929.5 ymax: 6008846
epsg (SRID):    NA
proj4string:    +proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs
gg_pa_all <- gg_vba %>%
  rbind(gg_ari)
gg_pa_all
Simple feature collection with 3137 features and 1 field
geometry type:  POINT
dimension:      XY
bbox:           xmin: 248825.6 ymin: 5725915 xmax: 742929.5 ymax: 6008846
epsg (SRID):    NA
proj4string:    +proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs
plot_gg_pa_all <- ggplot() +
  geom_sf(data = victoria) +
  geom_sf(data = ch_rfa) +
  geom_sf(data = gg_pa_all, aes(colour = base::as.factor(PA)), size = 0.01)
plot_gg_pa_all

gg_pa_ch <- gg_pa_all %>%
  st_contains(ch_rfa)
gg_pa_ch
Sparse geometry binary predicate list of length 3137, where the predicate was `contains'
first 10 elements:
 1: (empty)
 2: (empty)
 3: (empty)
 4: (empty)
 5: (empty)
 6: (empty)
 7: (empty)
 8: (empty)
 9: (empty)
 10: (empty)

2.2.2 LBP Occurrence data

2.3 Landis output

2.4 Climactic data

2.5 Distribution model variables

3 Distribution model fit and prediction

4 Population viability analysis

LS0tCnRpdGxlOiAiVmljdG9yaWFuIEZvcmVzdCBGdXR1cmVzIFBvcHVsYXRpb24gVmFiaWxpdHkgQW5hbHlzaXMiCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazogCiAgICB0b2M6IHllcwogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlCmF1dGhvcjogR0UgUnlhbgpkYXRlOiAyMDE5LTA4LTA1Ci0tLQoKIyBQcmVwYXJhdGlvbnMKCiMjIyBQYWNrYWdlcwpMb2FkIHBhY2thZ2VzCmBgYHtyIHBhY2thZ2VzfQpsaWJyYXJ5KHJhc3RlcikKbGlicmFyeShkcGx5cikKbGlicmFyeSh0aWJibGUpCmxpYnJhcnkoc2YpCmxpYnJhcnkocmdkYWwpCmxpYnJhcnkocmVhZHIpCmxpYnJhcnkocmVhZHhsKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkobHVicmlkYXRlKQpsaWJyYXJ5KG1hZ3JpdHRyKQpsaWJyYXJ5KHRpZHlyKQpgYGAKCiMjIyBGdW5jdGlvbnMKYGBge3IgZnVuY3Rpb25zfQpzb3VyY2UoZmlsZSA9ICJSL2Z1bmN0aW9ucy9nc2ZwbG90LlIiKQpzb3VyY2UoZmlsZSA9ICJSL2Z1bmN0aW9ucy9ncnBsb3QuUiIpICMgZnVnbHkKc291cmNlKGZpbGUgPSAiUi9mdW5jdGlvbnMvcmVhZC52YmEuUiIpCmBgYAoKCiMgUHJlcGFyZSB2YXJpYWJsZXMKCiMjIEdlb2dyYXBoaWMgZGF0YQoKIyMjIExhbmRzY2FwZQpTZXQgdXAgYmFzZSBsYW5kc2NhcGUgbGF5ZXIKYGBge3IgY2hfcnN0fQpjaF9yc3QgPC0gcmFzdGVyKHggPSAiZGF0YS9ncmlkcy9lY29fdjEyLmltZyIpCmNoX3JzdApgYGAKYGBge3J9CmNoX3Byb2ogPC0gY3JzKGNoX3JzdCkKYGBgCgoKYGBge3IgcGxvdCBjaF9yc3R9CnBsb3QoY2hfcnN0KQpgYGAKCiMjIyBCb3VuZGFyaWVzCmBgYHtyIHJmYX0KcmZhIDwtIHJlYWRfc2YoImRhdGEvc2hhcGVmaWxlcy9SRkEvIikKcmZhCmBgYAoKYGBge3J9CmdzZnBsb3QocmZhKQpgYGAKCgpgYGB7ciBjaF9yZmF9CmNoX3JmYSA8LSByZmFbcmZhJE5BTUU9PSAiQ0VOVFJBTCBISUdITEFORFMiLF0gJT4lCiAgc3RfdHJhbnNmb3JtKGNycyA9IGNoX3Byb2opCgpjaF9yZmEKYGBgCgpgYGB7cn0KZ3NmcGxvdChjaF9yZmEpCmBgYAoKCmBgYHtyIGNoX21hc2t9CmNoX21hc2sgPC0gcmFzdGVyaXplKGNoX3JmYSwgY2hfcnN0LCBmaWVsZCA9IDEpCmBgYAoKYGBge3IgcGxvdCBjaF9tYXNrfQpwbG90KGNoX21hc2spCmBgYAoKYGBge3J9CnZpY3RvcmlhIDwtIHJlYWRfc2YoImRhdGEvc2hhcGVmaWxlcy92aWNzdGF0ZXBvbHlnb24vIikgJT4lCiAgc3RfdHJhbnNmb3JtKGNycyA9IGNoX3Byb2opCmBgYAoKCgoKIyMgT2NjdXJyZW5jZSBkYXRhCgojIyMgR0cgT2NjdXJyZW5jZSBkYXRhClJlYWQgaW4gZGF0YQpgYGB7ciByZWFkIGdnIG9jY30KZ2dfYXJpIDwtIHJlYWRfZXhjZWwocGF0aCA9ICJkYXRhL3RhYnVsYXIvQm9BX1NCX0NvbWJpbmVkX1ZCQV91cGxvYWRfdjQueGxzIikgJT4lCiAgZHBseXI6OnNlbGVjdCgtc3RhcnRzX3dpdGgoImxlYXZlIikpICU+JQogIHJlbmFtZSgibG9uIiA9IGBYLWNvb3JkaW5hdGUgKGVhc3Rpbmcgb3IgbG9uZ2l0dWRlKWAsICJsYXQiID0gYFktY29vcmRpbmF0ZSAobm9ydGhpbmcgb3IgbGF0aXR1ZGUpYCkgJT4lCiAgIGZpbGwobG9uLCBsYXQsIC5kaXJlY3Rpb24gPSAiZG93biIpICU+JQogIGZpbHRlcihgVGF4b24gTmFtZWAgPT0gIk1pc2MgVGFyZ2V0IHRheGEgbm90IGZvdW5kIikgJT4lCiAgc2VsZWN0KGxvbiwgbGF0KSAlPiUKICBtdXRhdGUoUEEgPSAwKSAlPiUKICBzdF9hc19zZihjb29yZHMgPSBjKCJsb24iLCAibGF0IiksIGNycyA9IHN0X2NycygyODM1NSkpICU+JQogIHN0X3RyYW5zZm9ybShjcnMgPSBzdF9jcnMoY2hfcnN0KSkKCmdnX2FyaQpgYGAKCmBgYHtyfQpnZ192YmEgPC0gcmVhZC52YmEoImRhdGEvdGFidWxhci92YmFfZ2dfYWxsXzIwMTkwNTA5LmNzdiIpICU+JQogIGRwbHlyOjpyZW5hbWUoImRhdGUiID0gYFN1cnZleSBTdGFydCBEYXRlYCwgImxvbiIgPSBgTG9uZ2l0dWRlIEdEQTk0YCwgImxhdCIgPSBgTGF0aXR1ZGUgR0RBOTRgLCAiY291bnQiID0gYFRvdGFsIENvdW50YCkgJT4lCiAgc2VsZWN0KGRhdGUsIGxvbiwgbGF0LCBjb3VudCkgJT4lCiAgbXV0YXRlKGRhdGUgPSBkbXkoZGF0ZSkpICU+JQogIGZpbHRlcihkYXRlID4geW1kKCIyMDA5LTAzLTAxIikpICU+JQogIG11dGF0ZShQQSA9IGlmZWxzZShjb3VudCAhPSAwIHwgaXMubmEoY291bnQpLCAxLCAwKSkgJT4lCiAgc2VsZWN0KGxvbiwgbGF0LCBQQSkgJT4lCiAgc3RfYXNfc2YoY29vcmRzID0gYygibG9uIiwgImxhdCIpLCBjcnMgPSBzdF9jcnMoNDI4MykpICU+JQogIHN0X3RyYW5zZm9ybShjcnMgPSBzdF9jcnMoY2hfcnN0KSkKCmdnX3ZiYQpgYGAKYGBge3IgZ2dfcGFfYWxsfQpnZ19wYV9hbGwgPC0gZ2dfdmJhICU+JQogIHJiaW5kKGdnX2FyaSkKCmdnX3BhX2FsbApgYGAKCmBgYHtyIHBsb3RfZ2dfcGFfYWxsfQpwbG90X2dnX3BhX2FsbCA8LSBnZ3Bsb3QoKSArCiAgZ2VvbV9zZihkYXRhID0gdmljdG9yaWEpICsKICBnZW9tX3NmKGRhdGEgPSBjaF9yZmEpICsKICBnZW9tX3NmKGRhdGEgPSBnZ19wYV9hbGwsIGFlcyhjb2xvdXIgPSBiYXNlOjphcy5mYWN0b3IoUEEpKSwgc2l6ZSA9IDAuMDEpCgpwbG90X2dnX3BhX2FsbApgYGAKCmBgYHtyIGdnX3BhX2NofQpnZ19wYV9jaCA8LSBnZ19wYV9hbGwKCmdnX3BhX2NoCmBgYAoKCgojIyMgTEJQIE9jY3VycmVuY2UgZGF0YQpgYGB7ciByZWFkIGxiIG9jY30KCmBgYAoKIyMgTGFuZGlzIG91dHB1dAoKIyMgQ2xpbWFjdGljIGRhdGEKCiMjIERpc3RyaWJ1dGlvbiBtb2RlbCB2YXJpYWJsZXMKCiMgRGlzdHJpYnV0aW9uIG1vZGVsIGZpdCBhbmQgcHJlZGljdGlvbgoKIyBQb3B1bGF0aW9uIHZpYWJpbGl0eSBhbmFseXNpcw==